home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / DSAT_ANA / DSAT_OUT.C < prev    next >
Text File  |  1988-11-02  |  1KB  |  75 lines

  1. /*
  2.     System error alert table analyzer
  3.     "DSAT Output.c"
  4. */
  5.  
  6. static int Ref;                /* Output file reference number */
  7. static int ResRef;            /* Resource file reference number */
  8.  
  9. /* ----- Write C string to file ---------------------------------------- */
  10.  
  11. void Output(s)
  12. register char *s;
  13. {
  14.     register char *p;
  15.     long count;
  16.  
  17.     p = s;
  18.     while(*p++)
  19.         ;
  20.     count = p - s;
  21.     FSWrite(Ref, &count, s);
  22. }
  23.  
  24. /* ----- Write resource to output file --------------------------------- */
  25.  
  26. void OutputResource(p, size, type, id, name)
  27. char *p;
  28. register long size;
  29. long type;
  30. int id;
  31. char *name;
  32. {
  33.     register int res;
  34.     register char **h;
  35.  
  36.     if (h = (char **)NewHandle(size)) {
  37.         BlockMove(p, *h, size);
  38.         res = CurResFile();
  39.         UseResFile(ResRef);
  40.         AddResource(h, type, id, name);
  41.         WriteResource(h);
  42.         ReleaseResource(h);        /*DisposHandle(h);*/
  43.         UseResFile(res);
  44.     }
  45. }
  46.  
  47. /* ----- Open text file for output ------------------------------------- */
  48.  
  49. int OutputOpen(name, volume)
  50. char *name;
  51. int volume;
  52. {
  53.     register int err;
  54.     register int res;
  55.  
  56.     FSDelete(name, volume);
  57.     err = Create(name, volume, 'PEDT', 'TEXT') ||
  58.             FSOpen(name, volume, &Ref);
  59.     if (!err) {
  60.         res = CurResFile();
  61.         CreateResFile(name);
  62.         ResRef = OpenResFile(name);
  63.         UseResFile(res);
  64.     }
  65.     return err;
  66. }
  67.  
  68. /* ----- Close output file --------------------------------------------- */
  69.  
  70. void OutputClose()
  71. {
  72.     FSClose(Ref);
  73.     CloseResFile(ResRef);
  74. }
  75.